import axios from 'axios';
// 在js中引入elementUI 的Message组件
import {Message} from 'element-ui'

// 创建Axios实例
const http = axios.create({
    // 通用的请求地址前缀
    baseURL: 'http://localhost:8090',
    timeout: 10000, // 请求超时时间 ，单位毫秒
    headers: {
        'Content-Type': 'application/json',
        // 'Authorization': 'Bearer YOUR_ACCESS_TOKEN' // 如果需要认证
    }
});

// 添加请求拦截器
http.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么

    // 在每次请求的headers 头部都添加一个token参数，参数值时本地存储的token
    //如果本地存了token说明本地登录成功了，如果没有token,说明没有token
    const token = localStorage.getItem("edb-authorization-token");
    if(token  && !config.url.endsWith('/login') &&  !config.url.endsWith('/captchaImage')) {
        config.headers["Authorization"] = "Bearer"+token;
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
http.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    let res_data = response.data;
    // 统一提取错误提示
    if(res_data.code !=200){
        Message.error(res_data.msg|| '网络请求错误');
        //这里的return 不是结束函数，而是把return的值传到组件的res
        return false;
    }

    return res_data;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

// 对外暴露axios示例
export default  http
